﻿#region File and License Information
/*
<File>
	<License>
		Copyright © 2009 - 2017, Daniel Vaughan. All rights reserved.
		This file is part of Calcium (http://calciumsdk.net), 
		which is released under the MIT License.
		See file /Documentation/License.txt for details.
	</License>
	<CreationDate>2009-03-01 18:43:30Z</CreationDate>
</File>
*/
#endregion

using System.ComponentModel;
using System.ServiceModel;

namespace Outcoder.ServiceModel
{
	[ServiceContract(Namespace = OrganizationalConstants.ServiceContractNamespace)]
	/* TODO: [DV] comment. */
	public interface IServiceContract
	{
		/// <summary>
		/// This method may perform any or no action. It is used to test
		/// the connection on a newly opened channel. It is much like the DoWork()
		/// or HelloWorld() method present on service to test for connectivity.
		/// Moreover, this method allows the ChannelFactorySingleton 
		/// to negotiates the connection, and to fail early if there is a connectivity issue.
		/// </summary>
		/// <param name="arbitraryIdentifier">An arbitrary string identifier.</param>
		/// <returns>An arbitrary string value.</returns>
		[EditorBrowsable(EditorBrowsableState.Never)]
		[OperationContract]
		string InitiateConnection(string arbitraryIdentifier);
	}
}
